package q007;

/**
 * 难道就是判断是否溢出
 * 这里选择看到的一个比较好的方法：
 * 每次新计算的newRes/10在没有溢出的情况下，是和上一次的res应该是一样的，但溢出后就不一样了。
 */
class Solution {
    public int reverse(int x) {
        int res = 0;

        while (x != 0) {
            int pop = x % 10;
            x /= 10;

            int newRes = res*10 + pop;
            if (newRes / 10 != res)//新值和旧值不同了，证明溢出
                return 0;
            res = newRes;
        }
        return res;
    }

    public static void main(String[] args) {
        System.out.println((new Solution()).reverse(-1299999349));
    }
}